home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / 081-090 / amok90 / sana2 / sana2.mod next >
Text File  |  1993-11-04  |  10KB  |  270 lines

  1. (* ------------------------------------------------------------------------
  2.   :Module.        SANA2.MOD
  3.   :Contents.      Amiga Oberon interface module to SANA-II network drivers
  4.   :Author.        Stefan Hellwig
  5.   :Address.       Oberer Kirchweg 12, 3501 Schauenburg 1, Germany
  6.   :EMail.         Z-Netz : STEFAN_HELLWIG@URANUS.ZER
  7.   :EMail.         UseNet : stefan_hellwig@uranus.osgo.ks.he.schule.de
  8.   :History.       V1.00 10-Mar-92
  9.   :Copyright.     Written 1993 by Stefan Hellwig and freely distributable.
  10.   :Language.      Oberon-2
  11.   :Translator.    AMIGA OBERON v3.00d
  12.   :Remark.        AmigaOS 2.04 and above only !
  13.   ------------------------------------------------------------------------ *)
  14.  
  15. MODULE Sana2;
  16.  
  17. IMPORT
  18.    BT:= BasicTypes,
  19.    E := Exec,
  20.    T := Timer,
  21.    U := Utility;
  22.  
  23. (*
  24. **      Filename: devices/sana2.h
  25. **      Revision: 1.11
  26. **      Date: 92/11/10 13:35:29
  27. **
  28. **      Structure definitions for SANA-II devices.
  29. **
  30. **      (C) Copyright 1991 Commodore-Amiga Inc.
  31. **              All Rights Reserved
  32. *)
  33.  
  34. CONST
  35.    maxAddrBits  * = 128;
  36.    maxAddrBytes * = (maxAddrBits+7) DIV 8;
  37.  
  38. TYPE
  39.    Sana2ReqPtr * = UNTRACED POINTER TO Sana2Req;
  40.    Sana2Req * = STRUCT (ioReq * : E.IORequest)
  41.         wireError * : LONGINT;        (* wire TYPE specific error     *)
  42.         packetType* : LONGINT;        (* packet TYPE                  *)
  43.         srcAddr   * : ARRAY maxAddrBytes OF E.BYTE;    (* source addr *)
  44.         dstAddr   * : ARRAY maxAddrBytes OF E.BYTE;    (* dest addr   *)
  45.         dataLength* : LONGINT;        (* length of packet data        *)
  46.         data      * : E.APTR;         (* packet data                  *)
  47.         statData  * : E.APTR;         (* statistics data pointer      *)
  48.         bufferManagement * : E.APTR;  (* see SANA-II OpenDevice adoc  *)
  49.    END;
  50.  
  51. (*
  52. ** defines for the io_Flags field
  53. *)
  54.  
  55. CONST
  56.    rawB * = 7;                     (* raw packet IO requested      *)
  57.    raw  * = SHORTSET{rawB};
  58.  
  59.    bCastB * = 6;                   (* broadcast packet (received)  *)
  60.    bCast  * = SHORTSET{bCastB};
  61.  
  62.    mCastB * = 5;                   (* multicast packet (received)  *)
  63.    mCast  * = SHORTSET{mCastB};
  64.  
  65.    quickB * = E.quick;             (* quick IO requested (0)       *)
  66.    quick  * = SHORTSET{quickB};
  67.  
  68. (*
  69. ** defines for OpenDevice() flags
  70. *)
  71.  
  72.    mineB * = 0;                    (* exclusive access requested   *)
  73.    mine  * = LONGSET{mineB};
  74.  
  75.    promB * = 1;                    (* promiscuous mode requested   *)
  76.    prom  * = LONGSET{promB};
  77.  
  78. (*
  79. ** defines for OpenDevice() tags
  80. *)
  81.  
  82.    dummy = U.user + 0B0000H;
  83.  
  84.    copyToBuff   * = dummy + 1;
  85.    copyFromBuff * = dummy + 2;
  86.  
  87. TYPE
  88.  
  89.    (*
  90.     ** Copy procedure definition (Added by Implementor)
  91.     ** Same for CopyFromBuff and CopyToBuff
  92.     *)
  93.  
  94.    copyProc * = PROCEDURE(to{10}  :BT.ANY;
  95.                           from{11}:BT.ANY;
  96.                           n{0}    :LONGINT):BOOLEAN;
  97.  
  98.    (*
  99.     ** Device query data structure
  100.     *)
  101.  
  102.    DeviceQueryPtr * = UNTRACED POINTER TO DeviceQuery;
  103.    DeviceQuery * = STRUCT
  104.    (*
  105.    ** Standard information
  106.    *)
  107.         sizeAvailable * : LONGINT;      (* bytes available              *)
  108.         sizeSupplied  * : LONGINT;      (* bytes supplied               *)
  109.         devQueryFormat* : LONGINT;      (* this is type 0               *)
  110.         deviceLevel   * : LONGINT;      (* this document is level 0     *)
  111.    (*
  112.    ** Common information
  113.    *)
  114.         addrFieldSize * : INTEGER;      (* address size in bits         *)
  115.         mtu           * : LONGINT;      (* maximum packet data size     *)
  116.         bps           * : LONGINT;      (* line rate (bits/sec)         *)
  117.         hardwareType  * : LONGINT;      (* what the wire is             *)
  118.    (*
  119.    ** Format specific information
  120.    *)
  121.    END;
  122.  
  123. CONST
  124.  
  125. (*
  126. ** defined Hardware types
  127. **
  128. **  If your hardware type isn't listed below contact CATS to get a new
  129. **  type number added for your hardware.
  130. *)
  131.    ethernet   * = 1;
  132.    ieee802    * = 6;
  133.    arcnet     * = 7;
  134.    localTalk  * = 11;
  135.    dyLAN      * = 12;
  136.  
  137.    amokNet    * = 200;
  138.  
  139.    ppp        * = 253;
  140.    slip       * = 254;
  141.    cSlip      * = 255;
  142.  
  143. TYPE
  144.  
  145.    PacketTypeStatsPtr * = UNTRACED POINTER TO PacketTypeStats;
  146.    PacketTypeStats * = STRUCT
  147.         packetsSent    * : LONGINT;     (* transmitted count            *)
  148.         packetsReceived* : LONGINT;     (* received count               *)
  149.         bytesSent      * : LONGINT;     (* bytes transmitted count      *)
  150.         bytesReceived  * : LONGINT;     (* bytes received count         *)
  151.         packetsDropped * : LONGINT;     (* packets dropped count        *)
  152.    END;
  153.  
  154.    SpecialStatRecordPtr * = UNTRACED POINTER TO SpecialStatRecord;
  155.    SpecialStatRecord * = STRUCT
  156.         type * : LONGINT;               (* statistic identifier         *)
  157.         count *: LONGINT;               (* the statistic                *)
  158.         string*: UNTRACED POINTER TO ARRAY OF CHAR; (* statistic name   *)
  159.    END;
  160.  
  161.  
  162.    SpecialStatHeaderPtr * = UNTRACED POINTER TO SpecialStatHeader;
  163.    SpecialStatHeader * = STRUCT
  164.         recordCountMax      * :LONGINT; (* room available               *)
  165.         recordCountSupplied * :LONGINT; (* number supplied              *)
  166.         (* struct Sana2SpecialStatRecord[RecordCountMax]; *)
  167.    END;
  168.  
  169.    DeviceStatsPtr * = UNTRACED POINTER TO DeviceStats;
  170.    DeviceStats * = STRUCT
  171.         packetsReceived * : LONGINT;    (* received count               *)
  172.         packetsSent     * : LONGINT;    (* transmitted count            *)
  173.         badData         * : LONGINT;    (* bad packets received         *)
  174.         overruns        * : LONGINT;    (* hardware miss count          *)
  175.         unused          * : LONGINT;    (* Unused field                 *)
  176.         unknownTypesReceived * : LONGINT; (* orphan count               *)
  177.         reconfigurations* : LONGINT;    (* network reconfigurations     *)
  178.         lastStart       * : T.TimeVal;  (* time of last online          *)
  179.    END;
  180.  
  181. (*
  182. ** Device Commands
  183. *)
  184.  
  185. CONST
  186.  
  187.    start              * = E.nonStd;
  188.  
  189.    query              * = start + 0;
  190.    getStationAddress  * = start + 1;
  191.    configInterface    * = start + 2;
  192.    addMulticastAddress* = start + 5;
  193.    delMulticastAddress* = start + 6;
  194.    multicast          * = start + 7;
  195.    broadcast          * = start + 8;
  196.    trackType          * = start + 9;
  197.    untrackType        * = start +10;
  198.    getTypeStats       * = start +11;
  199.    getSpecialStats    * = start +12;
  200.    getGlobalStats     * = start +13;
  201.    onEvent            * = start +14;
  202.    readOrphan         * = start +15;
  203.    online             * = start +16;
  204.    offline            * = start +17;
  205.  
  206.    end                * = start +18;
  207.  
  208. (*
  209. ** defined errors for io_Error  (see also <exec/errors.h>)
  210. *)
  211.  
  212.    errNoError         * = 0;            (* peachy-keen                  *)
  213.    errNoResources     * = 1;            (* resource allocation failure  *)
  214.    errBadArgument     * = 3;            (* garbage somewhere            *)
  215.    errbadState        * = 4;            (* inappropriate state          *)
  216.    errBadAddress      * = 5;            (* who?                         *)
  217.    errMTUExeeded      * = 6;            (* too much to chew             *)
  218.    errNotSupported    * = 8;            (* hardware can't support cmd   *)
  219.    errSoftware        * = 9;            (* software error detected      *)
  220.    errOutOfService    * = 10;           (* driver is OFFLINE            *)
  221.  
  222. (*
  223. ** From <exec/errors.h>
  224. **
  225. **      IOERR_OPENFAIL   (-1) * device/unit failed to open *
  226. **      IOERR_ABORTED    (-2) * request terminated early [after AbortIO()] *
  227. **      IOERR_NOCMD      (-3) * command not supported by device *
  228. **      IOERR_BADLENGTH  (-4) * not a valid length (usually IO_LENGTH) *
  229. **      IOERR_BADADDRESS (-5) * invalid address (misaligned or bad range) *
  230. **      IOERR_UNITBUSY   (-6) * device opens ok, but requested unit is busy *
  231. **      IOERR_SELFTEST   (-7) * hardware failed self-test *
  232. *)
  233.  
  234. (*
  235. ** defined errors for ios2_WireError
  236. *)
  237.  
  238.    wErrGenericError   * = 0;            (* no specific info available   *)
  239.    wErrNotConfigured  * = 1;            (* unit not configured          *)
  240.    wErrUnitOnline     * = 2;            (* unit is currently online     *)
  241.    wErrUnitOffline    * = 3;            (* unit is currently offline    *)
  242.    wErrAlreadyTracked * = 4;            (* protocol already tracked     *)
  243.    wErrNotTracked     * = 5;            (* protocol not tracked         *)
  244.    wErrBuffError      * = 6;            (* buff mgt func returned error *)
  245.    wErrSrcAddress     * = 7;            (* source address problem       *)
  246.    wErrDstAddress     * = 8;            (* destination address problem  *)
  247.    wErrBadBroadcast   * = 9;            (* broadcast address problem    *)
  248.    wErrBadMulticast   * = 10;           (* multicast address problem    *)
  249.    wErrMulticastFull  * = 11;           (* multicast address list full  *)
  250.    wErrBadEvent       * = 12;           (* unsupported event class      *)
  251.    wErrBadStatData    * = 13;           (* statdata failed sanity check *)
  252.    wErrIsConfigured   * = 15;           (* attempt to config twice      *)
  253.    wErrNullPointer    * = 16;           (* null pointer detected        *)
  254.  
  255.  
  256. (*
  257. ** defined events
  258. *)
  259.  
  260.    eventError         * = LONGSET{0};   (* error catch all              *)
  261.    eventTX            * = LONGSET{1};   (* transmitter error catch all  *)
  262.    eventRX            * = LONGSET{2};   (* receiver error catch all     *)
  263.    eventOnline        * = LONGSET{3};   (* unit is in service           *)
  264.    eventOffline       * = LONGSET{4};   (* unit is not in service       *)
  265.    eventBuff          * = LONGSET{5};   (* buff mgt function error      *)
  266.    eventHardware      * = LONGSET{6};   (* hardware error catch all     *)
  267.    eventSoftware      * = LONGSET{7};   (* software error catch all     *)
  268.  
  269. END Sana2.
  270.